package github.ziwukun.jsonql.orm;

import com.fasterxml.jackson.annotation.JsonProperty;

import github.ziwukun.jsonql.lang.CmpOpr;

/**
 * 字段支持的条件方式
 * @author Hugo.Yu
 */
public enum SupportCondition {
	@JsonProperty("@all")
	ALL(null),
	@JsonProperty("@gt")
	GT(CmpOpr.GT),
	@JsonProperty("@lt")
	LT(CmpOpr.LT),
	@JsonProperty("@gte")
	GTE(CmpOpr.GTE),
	@JsonProperty("@lte")
	LTE(CmpOpr.LTE),
	@JsonProperty("@eq")
	EQ(CmpOpr.EQ),
	@JsonProperty("@neq")
	NEQ(CmpOpr.NEQ),
	@JsonProperty("@in")
	IN(CmpOpr.IN),
	@JsonProperty("@nin")
	NIN(CmpOpr.NIN),
	@JsonProperty("@isnull")
	ISNULL(CmpOpr.ISNULL),
	@JsonProperty("@notnull")
	NOTNULL(CmpOpr.NOTNULL);
	
	SupportCondition(CmpOpr conditional){
		this.conditional = conditional;
	}
	private CmpOpr conditional;
	
	public boolean support(CmpOpr symbol) {
		if(conditional == null) {
			return true;
		}
		return conditional == symbol;
	}
}
